Foi originado do National Institute of Diabetes and Digestive and Kidney Diseases.
Essa base foi criada com base nos Pima, um grupo de nativos americanos que vivem em uma área que atualmente abrange o centro e o sul do estado do Arizona.
A base possui 768 observações e 9 colunas. O objetivo é classificar se um paciente tem diabetes com base em algumas características do paciente.
Descrição das colunas
Pregnancies: Número de gestações da paciente.
Glucose: Concentração de glicose plasmática em teste oral de tolerância à glicose.
Apenas as colunas de glicose, pressão arterial, espessura da dobra cutânea do tríceps, nível de insulina e IMC. Aquela que mais possui valores ausentes é a variável de nível de insulina.
As variáveis apresentam uma assimetria negativa, sendo a variável de pressão arterial a única mais simétrica. Além disso, observando a distribuição dos diabéticos e não diabéticos para cada variável, eles apresentam um padrão de comportamento bastante similar.
A maioria das variáveis independentes não apresentam uma alta correlação. No entanto, os níveis de insulina tem uma alta correlação com a glicose, o IMC tem uma alta correlação com a espessura da dobra cutânea do tríceps e a idade tem uma alta correlação com a quantidade de gravidez.
Métricas utilizadas para avalização dos modelos
Métricas utilizadas para avalização dos modelos
ROC AUC
Acurácia
Brier Score: \(BS = \frac{1}{N}\sum_{t=1}^N\left(f_t - o_t\right)^2\). \(N\) é o tamanho da amostra classificada, \(f_t\) é a probabilidade predita e \(o_t\) é o valor observado.
Os dados foram divididos entre teste e treino, com 20% para o conjunto de teste e estratificado pela variável dependente.
Os valores ausentes foram substituídos pela mediana das variáveis.
Foram criadas novas variáveis, idade por nível de insulina, glicose por predisposição de ter diabetes e o produto entre IMC e a espessura da dobra cutânea do tríceps.
Todas as variáveis foram transformadas com \(\log \left(1 + x\right)\) e normalizadas. Além disso, foi utilizado o utilizado o step_nzv, que serve para remover variáveis com variância próximo de zero.
autoplot(grid_results, metric ="roc_auc") +theme_bw() +labs(y ="Métrica", x ="")
autoplot(grid_results, select_best =TRUE) +theme_bw() +labs(y ="Métrica", x ="")
Algoritmos e validação cruzada
A validação cruzada foi realizada com 10 folds, estratificado pela variável dependente e foi criado um grid de 50 combinações entre os hiperparâmetros. Assim, foram otimizados os algoritmos a quantidade de vizinhos e o tipo de distância utilizada. Foram otimizados, para o naive bayes, o parâmetro de suavidade para o limite da classe e a correção da suavidade chamado de Laplace. Foram também otimizados os hiperparâmetros de regularização da regressão logística.
O modelo que obteve o melhor resultado foi o discriminante linear, com base na curva ROC e o brier. Na base de teste, ele obteve um ROC AUC de 0,8652, a métrica de brier 0,1443 e obteve uma acurácia de 78,57%. O que pior perfomou foi o Naive Bayes, obtendo as piores estatísticas para todas as métricas consideradas.
Hiperparâmetros selecionados dos modelos tunados
# Hiperparâmetros para o K-NNgrid_results |>extract_workflow_set_result("knn_fit") |>select_by_one_std_err(desc(neighbors), metric ="roc_auc") |> knitr::kable()